Text-classification system and method

ABSTRACT

Disclosed are a computer-readable code, system and method for classifying a target document in the form of a digitally encoded natural-language text as belonging to one or more of two or more different classes. Each of a plurality of non-generic words and optionally, words groups characterizing the target document is selected as a descriptive term if the term has an above-threshold selectivity value in at least one library of texts in a field, where the selectivity value of a term is a measure of the field-specificity of that term. There is then determined, for each of the plurality of sample texts having associated classification identifiers, a match score related to the number of descriptive terms present in or derived from that text that match those in the target text. From the selected matched texts, and the associated classification identifiers, a classification determination of the target document is made.

This application claims priority to U.S. patent application Ser. No. 10/261,970 filed on Sep. 30, 2002 which claims priority to U.S. Provisional Patent Application No. 60/394,204 filed on Jul. 5, 2002, and to PCT Patent Application No. PCT/US02/21198 filed on Jul. 3, 2002, all of which are incorporated in their entirety herein by reference.

FIELD OF THE INVENTION

This invention relates to the field of text classification, and in particular, to a method, machine-readable code, and system for classifying a natural language text into one or more classes of fields or categories.

BACKGROUND OF THE INVENTION

Organizations that routinely handle a large number of digitally processed texts, such as funding agencies, legal reporter services, governmental patent offices, scientific or technical journal publishers, or large corporations, are often faced with the task of classifying newly received or generated documents into one or more of a plurality of different classes, typically for purposes of further document processing.

For example, a large funding agency, such as the NIH, NSF, or the DOD, will typically receive thousands of grant proposals for research funding each month. Before a proposal can be forwarded to the proper group for evaluation, it must be classified as to general funding area, so it can be sent to the appropriate grant-review group.

As another example, a patent office may receive thousands of electronically filed patent applications each week. Before these documents can be further processed by substantive examination, they must first be classified as to patent class, and optionally, subclass, and forwarded to the appropriate art unit or technical center for examination.

Publishers of legal texts or scientific and technical reports or papers may receive thousands of publication submissions per week, and these must be first be classified according to legal area or scientific or technical area before further archiving or publication, or for forwarding to an appropriate editorial review group.

It would thus be desirable to provide an automated text classification system that is able to accurately, that is, within some defined performance limits, classify electronic documents into one or more different classes or categories, typically as a first step in document processing or for purposes of document control.

SUMMARY OF THE INVENTION

The invention includes, in one aspect, a computer-executed method for classifying a target document in the form of a digitally encoded natural-language text into one or more of two or more different classes. For each of a plurality of terms composed of non-generic words and, optionally, proximately arranged word groups in the target document, that term is selected as a descriptive term if it has an above-threshold selectivity value in at least one library of texts in a field. The selectivity value of a term in a library of texts in a field is related to the frequency of occurrence of that term in the library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively,

There is then determined, for each of a plurality of sample texts, a match score related to the number of descriptive terms present in or derived from that text that match those in the target document. Each of the plurality of sample texts has an associated classification identifier that identifies the one of more different classes to which that sample text belongs. One or more of the sample texts having the highest match scores are selected, the classification identifier(s) associated with the selected text(s) are recorded, and the one or more recorded classification identifiers are associated with the target document, thus classifying the target document. The sample texts are preferably texts in the libraries of texts from which the selectivity values of target terms are determined.

The selectivity value associated with a term in may be related to the greatest selectivity value determined with respect to each of a plurality N≧2 of libraries of texts in different fields. In one preferred embodiment, the selectivity value assigned to a descriptive term is a root (logarithmic) function of the frequency of occurrence of that term in the library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively. Exemplary root functions are between 2, a square root function, and 3, a cube root function.

In one embodiment each different library of texts defines a class having its own classification identifier. In another embodiment, each library of texts contains texts with multiple different classification identifiers.

In one general embodiment, the steps of selecting descriptive terms and/or determining sample texts with the highest match scores are carried out by accessing a text database containing the libraries of texts, either in processed or unprocessed form, where each text has an associated library identifier, text identifier, and classification identifier.

In a second general embodiment, the steps of selecting descriptive terms and/or determining sample texts with the highest match scores are carried out by accessing a word-records database, where each record includes or is linked to text identifiers of the library texts that contain that word, associated library and classification identifiers for each text, and optionally, one or more selectivity values associated with that word.

In an embodiment involving the word-records database, the step of selecting descriptive words in a target text includes (i) accessing the database to identify at least one selectivity value associated with each non-generic target word, and (ii) selecting a word as a descriptive word if at least one of its selectivity values is above a threshold value.

In another embodiment involving the word-records database, the step of selecting descriptive word groups in a target text includes (i) accessing the database to identify text and library identifiers for each non-generic word in the target text, (ii) using the identified text and library identifiers to calculate one or more selectivity values for that word, and (iii) selecting a word as a descriptive word if at least one of its calculated selectivity values is above a threshold value.

Also in an embodiment involving the word records, the step of determining match scores includes (i) accessing the database, to identify library texts associated with each descriptive word in the target text, and (ii) from the identified texts recorded in step (i), determining text match score based on number of descriptive words in a text, preferably weighted by the selectivity values of the matching descriptive words.

The words record database may additionally include word-position identifiers for each word. Here the step of selecting a word group with an above-threshold selectivity value may include (i) accessing the database to identify texts and associated library identifiers, and for each text, word-position identifiers associated with that wordpair in that text, (ii) from the identified texts, library identifiers and word-position identifiers recorded in step (i) determining one or more selectivity values for word group, and (iii) identifying a wordpair as a descriptive wordpair if at least one of its selectivity values is above a selected threshold value. The step of determining match scores may include (i) recording the texts associated with each descriptive wordpair, and (ii) determining text match score based, at least in part, on the number of descriptive word groups in a text, preferably weighted by the selectivity values of such wordpairs.

The sample texts and corresponding classification identifiers may be:

(a) libraries of different-field patent texts, where the classification identifier includes at least one patent class and, optionally, at least one patent subclass;

(b) libraries of different-field research grant proposals or reports, where the classification identifier includes a research funding class within a funding agency;

(c) libraries of case reports or head notes relating to different legal topics, where the classification identifier includes one or more different legal topics; and

(d) libraries of different-field scientific or technical texts, where the classification identifier includes at least one of a plurality of different science or technology field classifications.

In another aspect, the invention includes an automated system for classifying a target document in the form of a digitally encoded text as belonging to one or more of a plurality of different classes. The system includes (1) a computer, (2) a word-records database that is accessible by the computer, and 3) a computer-readable code for controlling the system operations of the computer.

Each word record in the word-record database includes text identifiers of the library texts that contain that word, an associated library identifier for each text, an associated classification identifier for each text, and optionally, one or more selectivity values for each word, where the selectivity value of a word in a library of texts in a field is related to the frequency of occurrence of that word in the library, relative to the frequency of occurrence of the same word in one or more other libraries of texts in one or more other fields, respectively.

The computer-readable code is operable to control the computer to carry out the steps of the classification method described above using the word-records database.

In still another aspect, the invention includes computer-readable code for use with an electronic computer and a word-records database in classifying a target document in the form of a digitally encoded text as belonging to one or more of a plurality of different classes.

These and other objects and features of the invention will become more fully apparent when the following detailed description of the invention is read in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates components of a system for processing, searching and classifying texts in accordance with the invention;

FIGS. 2A and 2B are overviews of steps in forming a processed-text database (2A), and a word-records database (2B);

FIG. 3 shows in an overview, flow diagram form, steps in processing a natural-language target text to generate descriptive search terms;

FIG. 4 shows in an overview flow diagram, steps in a text classification operation performed in accordance with the invention;

FIG. 5 is a flow diagram of the program module for processing a digitally encoded text to generate non-generic words and wordpairs;

FIG. 6 is a flow diagram of steps performed in generating a database of N library text files;

FIGS. 7A and 7B are flow diagrams of steps performed in generating a word-records database;

FIG. 8 illustrates a portion of two word records in a representative word-records database;

FIG. 9 is a flow diagram of program operation for calculating word and wordpair selectivity values from an N-library text database;

FIG. 10 is a flow diagram of program operation showing for calculating word selectivity values from a word-records database;

FIGS. 11 and 12 are flow diagrams of program operations for determining wordpair selectivity values from a word-records database;

FIGS. 13 and 14 are flow diagrams of program operations for text matching;

FIG. 15 is a flow diagram of program operations for determining classification scores from text-matching search results;

FIGS. 16A and 16B are bar graphs illustrating classification efficiency achieved with root functions of 2, 2.5, and 3, (16A), and as a function to the number of top matches considered (16B); and

FIGS. 17A and 17B are a bar graphs showing the correspondence between actual PTO patent classifications and patent classifications determined in accordance with the present invention for each of 164 patent abstracts, where FIG. 17A applies to PTO classes only and FIG. 17B, to PTO classes and subclasses.

DETAILED DESCRIPTION OF THE INVENTION

A. Definitions

“Natural-language text” refers to text expressed in a syntactic form that is subject to natural-language rules, e.g., normal English-language rules of sentence construction. Examples include descriptive sentences, groups of descriptive sentences making up paragraphs, such as summaries and abstracts, single-sentence texts, such as patent claims, and full texts composed of multiple paragraphs.

A “verb-root” word is a word or phrase that has a verb root. Thus, the word “light” or “lights” (the noun), “light” (the adjective), “lightly” (the adverb) and various forms of “light” (the verb), such as light, lighted, lighting, lit, lights, to light, has been lighted, etc., are all verb-root words with the same verb root form “light,” where the verb root form selected is typically the present-tense singular (infinitive) form of the verb.

“Verb form” refers to the form of a verb, including present and past tense, singular and plural, present and past participle, gerund, and infinitive forms of a verb. “Verb phrase” refers to a combination of a verb with one or more auxiliary verbs including (i) to, for, (ii) shall, will, would, should, could, can, and may, might, must, (iii) have has, had, and (iv) is are, was and were. Verb-root words expressed in a common verb form means that the words have the same form, e.g., present tense, singular form.

“Target text” or “input text” refers to a text that is to be classified.

“Abstract” refers to a summary form, typically composed of multiple sentences, of an idea, concept, invention, discovery or the like. Examples, include abstracts from patents and published patent applications, journal article abstracts, and meeting presentation abstracts, such as poster-presentation abstracts, abstract included in grant proposals, and case notes or legal-principle summaries.

“Claim” refers to a claim in a patent application or issued patent.

“Full text” refers to the full text of an article, patent, case-law report, business article, and the like.

“Field” refers to a given technical, scientific, legal or business field, as defined, for example, by a specified technical field, or a patent classification, including a group of patent classes (superclass), classes, or sub-classes, or a legal field or speciality, such “torts” or “negligence” or “property rights”, as well as to different grant-funding groups or categories within a funding agency, or to different levels of security of documents, e.g., “confidential,” “limited access,” “not for email dissemination,” and so on.

“Generic words” refers to words in a natural-language text that are not descriptive of, or only non-specifically descriptive of, the subject matter of the text. Examples include prepositions, conjunctions, pronouns, as well as certain nouns, verbs, adverbs, and adjectives that occur frequently in texts from many different fields. The inclusion of a word in a database of generic words, e.g., in a look-up table of generic words, is somewhat arbitrary, and can vary with the type of text analysis being performed, and the field of search being conducted, as will be appreciated below. Typically generic words have a selectivity value in any group of related libraries, e.g., libraries of different patent classes or superclasses, (see below) less than about 1.25.

“Non-generic words” are those words in a text remaining after generic words are removed. The following text, where generic words are enclosed by brackets, and non-generic words, left unbracketed, will illustrate:

[A method and apparatus for] treating psoriasis [includes a] source [of] incoherent electromagnetic energy. [The] energy [is] directed [to a region of] tissue [to be] treated. [The] pulse duration [and the] number [of] pulses [may be] selected [to] control treatment parameters [such as the] heating [of] healthy tissue [and the] penetration depth [of the] energy [to] optimize [the] treatment. [Also, the] radiation [may be] filtered [to] control [the] radiation spectrum [and] penetration depth.

A “sentence” is a structurally independent grammatical unit in a natural-language written text, typically beginning with a capital letter and ending with a period. In the example above, the first sentence of the text is “A method and apparatus for treating psoriasis includes a source of incoherent electromagnetic energy.” A sentence in a patent claim may include, separately, the claim preamble and individual elements of the claim.

“Distilled text” means text, e.g., a sentences or phrases, from which generic words have been removed. In the example above, the first sentence, reduced to a distilled sentence, reads: “treating psoriasis source incoherent electromagnetic energy.”

A “word string” is a sequence of words in a distilled sentence. The word string may be a distilled sentence or phrases or a subset thereof, in the case where the distilled sentence is parsed into two or more separate word strings.

A “word group” is a group, typically a pair, of non-generic words that are proximately arranged in a natural-language text. Typically, words in a word group are non-generic words in the same sentence. More typically they are nearest or next-nearest non-generic word neighbors in a string of non-generic words, e.g., a word string. As an example, the above distilled sentence and word string “treating psoriasis source incoherent electromagnetic energy” might include the wordpairs “treating psoriasis,” treating source,” “psoriasis source,” “psoriasis incoherent,” source incoherent,” source electromagnetic,” and so forth until all combination of nearest neighbors and next-nearest neighbors are considered.

Words and optionally, words groups, usually encompassing non-generic words and wordpairs generated from proximately arranged non-generic words, are also referred to herein as “terms”.

“Digitally-encoded text” refers to a natural-language text that is stored and accessible in computer-readable form, e.g., computer-readable abstracts or patent claims or other text stored in a database of abstracts, full texts or the like.

“Processed text” refers to computer readable, text-related data resulting from the processing of a digitally-encoded text to generate one or more of (i) non-generic words, (ii) wordpairs formed of proximately arranged non-generic words, (iii) word-position identifiers, that is, sentence and word-number identifiers.

“Library of texts in a field” refers to a library of texts (digitally encoded or processed) that have been preselected or flagged or otherwise identified to indicate that the texts in that library relate to a specific field or area of specialty, e.g., a patent class, patent subclass, or patent superclass. For example, a library may include patent abstracts from each of up to several related patent classes, from one patent class only, or from individual subclasses only. A library of texts typically contains at least 100 texts, and may contain up to 1 million or more.

“Frequency of occurrence of a term (word or word group) in a library” is related to the numerical frequency of the term in the library of texts, usually determined from the number of texts in the library containing that term, per total number of texts in the library or per given number of texts in a library. Other measures of frequency of occurrence, such as total number of occurrences of a term in the texts in a library per total number of texts in the library, are also contemplated.

The “selectivity value” of a term (word or word group) in a library of texts in a field is related to the frequency of occurrence of that term in that library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively. The measure of frequency of occurrence of a term is preferably the same for all libraries, e.g., the number of texts in a library containing that term. The selectivity value of a given term for a given field is typically determined as the ratio of the percentage texts in that field that contain that term, to the percentage texts in one or more unrelated field that contain the same term. A selectivity value so measured may be as low as 0.1 or less, or as high as 1,000 or greater. The selectivity value of a word in a library in a field indicates the “field specificity” or “degree of descriptiveness” of that word in that field.

Typically a separate selectivity value is calculated for each of a plurality of N≧2 selected fields, e.g., given technical fields, with respect to one or more other fields, i.e., fields outside the given technical field. The selectivity value then assigned to a term is the highest selected value calculated for each of the N different fields, or the selectivity value calculated for each different library, or one or more libraries of interest, or the average selectivity value calculated for some subset of selectivity values, e.g., for all libraries in some defined set of libraries.

In calculating the selectivity values of word groups, the word groups in the texts in each of the selected-field libraries and in the libraries of one or more other fields represent word groups generated from proximately arranged non-generic words in digitally encoded texts in the selected and other fields, respectively.

A “selectivity value associated” with a term or assigned to a term, for purposes of determining text match scores may be a selectivity value (calculated numerical-occurrence value) calculated with respect to a selected library of texts, the highest selectivity value determined for each of a plurality of different library of texts, a mathematical function of a calculated numerical-occurrence value, such as a root (logarithmic) function, or a simplified range of selectivity values, e.g., a “+” for all terms having a selectivity value above a given threshold, and “−” for those terms whose selectivity value is at or below this threshold value, or a plurality of selectivity-value ranges, such as 0, +1, +2, +3, and +4 to indicate a range of selectivity values, such as 0 to 1, >1–3, >3–7, >7–15, and >15, respectively. One preferred selectivity value is a root (logarithm or fractional exponential) function of the calculated numerical occurrence value. For example, if the highest calculated-occurrence value of a term is X, the selectivity value assigned to that term, for purposes of text matching, might be X^(1/2) or X^(1/2.5), or X^(1/3).

“Weighted by the selectivity value” as applied to the weight given a descriptive term in a text, means that the term is weighted by the selectivity value of that term, e.g., calculated numerical value or root function of the calculated value.

A “text identifier” or “TID” identifies a particular digitally encoded or processed text in a database, such as patent number, assigned internal number, bibliographic citation or other citation information.

A “library identifier” or “LID” identifies the field, e.g., technical field patent classification, legal field, scientific field, security group, or field of business, etc. of a given text.

A “classification identifier” or “CID” identifies a particular class, e.g., class or subclass in a classification system to which a particular text in a text library may belong. Where a text library is defined as texts having a particular CID, the CID and LID will be identical. Typically a library will consist of several classes of texts; that is a plurality of different CIDs will be associated with a given LID.

“A word-position identifier” of “WPID” identifies the position of a word in a text. The identifier may include a “sentence identifier” or “SID” which identifies the sentence number within a text containing a given word or word group, and a “word identifier” or “WID” which identifiers the word number, preferably determined from distilled text, within a given sentence. For example, a WPID of 2–6 indicates word position 6 in sentence 2. Alternatively, the words in a text, preferably in a distilled text, may be number consecutively without regard to punctuation.

A “verb identifier” or VID identifies one or more verb-synonym classes of a verb or verb-root word.

A “database” refers to one or more files of records containing information about libraries of texts, e.g., the text itself in actual or processed form, text identifiers, library identifiers, classification identifiers, one or more selectivity values, and word-position identifiers. The information in the database may be contained in one or more separate files or records, and these files may be linked by certain file information, e.g., text numbers or words, e.g., in a relational database format.

A “text database” refers to database of processed or unprocessed texts in which the key locator in the database is a text identifier. The information in the database is stored in the form of text records, where each record can contain, or be linked to files containing, (i) the actual natural-language text or the text in processed form, (ii) text identifiers, (iii) library identifiers identifying the library to which a text belong, and (iv) classification identifiers identifying the classification of a given text. The text database may include a separate record for each text, or combined text records for different libraries and/or different classification categories, or all texts in a single record. That is, the database may contain different libraries of texts, in which case each text in each different-field library is assigned the same library identifier, or may contain groups of texts having the same classification, in which case each text in a group is assigned the same classification identifier.

A “word database” or “word-records database” refers to database of words in which the key locator in the database is a word, typically a non-generic word. The information in the database is stored in the form of word records, where each record can contain, or be linked to files containing, (i) selectivity values for that word, (ii) identifiers of all of the texts containing that word, (iii), for each such text, a library identifier identifying the library to which that text belongs, (iv) for each such text, word-position identifiers identifying the position(s) of that word in that text, and (v) for each such text, one or more classification identifiers identifying the classification of that text. The word database preferably includes a separate record for each word. The database may include links between each word file and linked various identifier files, e.g., text files containing that word, or additional text information, including the text itself, linked to its text identifier. A word records database may also be a text database if both words and texts are separately addressable in the database.

“Sample texts” refers to texts that are searched for descriptive term matches with the target text, and which have classification descriptors by which a target text classification is determined. Typically, the sample texts are the library texts used in generating the selectivity values for the target-text terms. However, where the selectivity values of target-text terms are determined from an independent library of texts, the sample texts may be employed only for purposes of (i) identifying texts with the highest-term match scores with the target text, and (ii) using the classification identifiers associated with those sample texts to determine a classification for the target text.

A non-generic term (word or wordpair) is a “descriptive term” if that term has an assigned selectivity value in at least one library of texts of greater than some threshold value, preferably 1.25–5, e.g., 1.5, 2, or 2.5.

B. System and Method Overview

FIG. 1 shows the basic components of a text classification system 20 in accordance with the present invention. A cental computer or processor 22 receives user input and user-processed information from a user computer 24. The user computer has a user-input-device, such as a keyboard, modem, and/or disc reader 28 by which the user can enter target text. A display or monitor 26 displays word, wordpair, search, and classification information to the user. A text or word-records database 30 in the system is accessible by the central computer in carrying out operations of the system, as will be described.

It will be understood that “computer,” as used herein, includes both computer processor hardware, and the computer-readable code that controls the operation of the computer to perform various functions and operations as detailed below. That is, in describing program functions and operations, it is understood that these operations are embodied in a machine-readable code, and this code forms one aspect of the invention.

In a typical system, the user computer is one of several remote access stations, each of which is operably connected to the central computer, e.g., as part of an Internet or intranet system in which multiple users communicate with the central computer. Alternatively, the system may include only one user/central computer, that is, where the operations described for the two separate computers are carried out on a single computer.

As indicated above, the system employs a database of text information that is typically either a text database or a words-record database. As defined above, a text database includes text information that is classified according to text identifiers, e.g., patent numbers, publication information, or other text ID numbers. One preferred text database includes separate database files for the texts in each of N different-field libraries. For example, for patent classification, these N different libraries might include patent texts in each of N different technical fields, e.g., medicine, organic chemistry, drugs, electronic, computers, and so forth, where each library may encompasses many patent classes. As another example, the different libraries might include different subspecialties within a large field, such as the field of medicine, or different grant-proposal groups, or different legal fields.

FIG. 2A shows in overview, operations used in constructing a text database of processed texts by processing a plurality of texts in N≧2 defined-field libraries, such as libraries 32, of digitally encoded texts, to form processed-text database 30A. Each of the N libraries contains a plurality of digitally encoded texts in a particular field or speciality that can be defined in one of a variety of ways, e.g., patent classes, subclasses or superclasses, different areas of fields of technology, or different areas of fields or legal or business activity. For example, the libraries may include patent abstracts from all patent classes related to surgical devices (one library), drugs and drug delivery (another library), electronic devices (a third library), and so on, where the categorization of the texts in the libraries is such that several distinct fields or areas of speciality are represented, allowing for the determination of meaningful selectivity values for terms from the texts, as will be described below.

As noted above, each library is a collection of digitally encoded texts, e.g., abstracts, summaries, and/or patent claims, along with pertinent identifying information, e.g., (i) pertinent patent information such as patent number, patent-office classification, inventor names, and patent filing and issues dates, (ii) pertinent journal-reference information, such as source, dates, and author, or (iii) pertinent law-reporter information, such as reporter name, dates, and appellate court.

Large collections of digitally processed texts making up the N text libraries may be obtained in tape or CD ROM form, available from a variety of sources, such as the US Patent and Trademark Office, the European Patent Office PO, Dialog Search Service, legal reporter services, and other database sources whose database offerings are readily identifiable from their internet sites. In many of the examples described herein, the texts forming the libraries are from U.S. Patent Bibliographic databases which contain, for all patents issued between 1976 and 2000, various patent identifier information and corresponding patent abstracts. These databases are available in tape form from the USPTO.

With continued reference to FIG. 2A, the texts in the N libraries are processed by a text-processing module indicated at 34, and described below with reference to FIG. 5. Briefly, the module operates first to parse a text by punctuation and optionally, certain transition words, such as certain prepositions. The words in the text are then classified into one of three categories: (i) non-generic words, (ii) verb or verb-root words, and (iii) remaining words that tend to include predominantly nouns and adjectival words. The text remaining after removal of generic words—in other words, text consisting of distilled sentences—may be parsed into word strings typically 2–8 words long, where each distilled sentence may give rise to one or more word strings. The text-processing module uses a moving window algorithm to generate proximately arranged wordpairs in each of the word strings. Thus, the module processes a text into a list of non-generic words and word groups, e.g., proximately arranged wordpairs, and places these in a file along with associated text, library, and classification identifiers, as indicated at 36.

This process is repeated for all texts in all libraries, as indicated at 38, yielding a database 30A with N separate files, where each file contains all of the processed texts (words and wordpairs), and associated text, library, and classification identifiers for each text for a given library. Alternatively, the texts may be subdivided into other groups of files, e.g., separate files for each of the different classifications, or a separate file for each different text. Producing a text database is discussed further below with respect to FIG. 6.

FIG. 2B shows in overview flow diagram, steps in processing texts in N-defined-field libraries into a word-records database 30B. Here each of the texts in the defined-filed libraries 32 is successively processed at 34 to yield a list of non-generic words. If a non-generic word in the text being processed does not already have its own word record, the program generates a new record, as at 42, and places in that record, the corresponding identifier, library and classification identifiers for that text, and word-position identifiers for that word. A word record may also contain selectivity values for that word, calculated as described below. If a non-generic word in the text being processed already has its own word record, the program adds the new text, and associated identifiers to the already existing word record, as at 44. This process is repeated, through the logic at 45 and 46, until all of the non-generic words in all of the N-library texts are processed, yielding database 30B of individual word records, where each record includes (i) TIDs of all of the texts containing that word, (ii) the LID and CID for each text, and one or more WPIDs for that word in each listed text. It will be understood that some of the information in a “record” may be contained in linked files in a relational database, and that the database may have additional text information, e.g., actual text, stored in one or more separate files that can be accessed, e.g., by text identifier.

Information contained in the test or word-records database is used in four operations in the classification method of the invention. First, text and library information identifiers are used in calculating word selectivity values. Alternatively, a text or word-records database may include precalculated selectivity values, in which case the database is used to look up word selectivity values.

Second, and optionally, the database is used to calculate word-group selectivity values, either by accessing the texts in a text database or accessing combined word records in a word-records database. The selectivity values of words, and optionally, word groups are used in identifying descriptive terms in the target texts, and as weighting factors in text matching.

Third, text identifiers in the database are used in identifying texts having the highest term-match scores or overlap with the target-text term. In essence, this operation finds sample texts, e.g., library texts, having the greatest content overlap with target text.

Finally, classification identifiers associated with the highest matching texts are used in classifying the target text into one or more classifications.

FIG. 3 is an overview of program operations used for determining word and word-group selectivity values, for purposes of identifying descriptive terms in a target text. Target text 48 in the figure is an abstract, claim, or other natural-language text, typically in condensed or abstract form, used to identify the subject matter of the document being classified. The target text, which may be entered by the user on user computer 24, is initially processed, as at 34, to generate non-generic words contained in the text, which are stored in a file 50. Optionally, the text processing operation also generates word groups constructed from proximately arranged non-generic words in the text, stored at 52. The processing of target text into non-generic words and word groups, e.g., wordpairs is carried out by a module described below with respect to FIG. 5.

With continuing reference to FIG. 3, non-generic words and wordpairs (collectively, terms) from the input target text are then used to perform the following functions: (i) For each word contained in the target text, the computer performs the function indicated at 54 of looking up or calculating the corresponding selectivity value from information in a text or word-records database. Applying a default or user-supplied selectivity-value threshold x, indicated at 55, the computer saves words having above-threshold selectivity values as descriptive words. For example a default or user-supplied word selectivity value of 2 means that the computer would then save, as “descriptive” words, only those input text words having a selectivity value of 2 or greater. The descriptive words so identified are stored at 56. Words not meeting this threshold may be discarded, as at 61.

Descriptive wordpairs, where considered, are similarly determined by accessing a text or word-records database, and calculating the selectivity values of target-text word groups, e.g., wordpairs, as indicated at 62, and as will be described below. The wordpair selectivity values are tested for above-threshold values, as indicated at 63, and then either discarded or stored as descriptive word groups in a file 64.

The descriptive words and optionally, wordpairs, stored in the system may be displayed to the user, for one of the following user options. The user may accept the terms as pertinent and appropriate for the search to be conducted, without further editing; the user may add synonyms to one or more of the words (including words in the wordpairs) to expand the range of the search; the user may add or delete certain terms; and/or specify a lower or higher selectivity-value threshold for the word and/or wordpair terms, and ask the central computer to generate a new list of descriptive terms, based on new threshold values.

In a general embodiment, a calculated selectivity value is determined as the frequency of occurrence of that term (word or wordpair), measured as the total number of texts containing that term, per total number of texts in that library to the frequency of occurrence of the same term in one or more other defined-field libraries. Thus for example, assume that the term “electromagnetic” is found in 1,500 of 50,000 texts in one defined-field library, and in 500 of 150,000 texts in three libraries representing three other defined fields, where each library contains 50,000 texts. The calculated selectivity value of the word, determined from the ratio of the frequency of occurrence of the term in the one library and the other libraries is therefore 15/500:5/1500, or 9.

It will be appreciated that by selecting a sufficiently large number of texts from each library, a statistically meaningful frequency of occurrence of any word from the library texts is obtained. In a preferred embodiment, the selectivity value of a given word is calculated with respect to each of N different fields, and the selectivity value that is assigned to that word, or associated with that database word, is the highest of the N selectivity values calculated. For example, if selectivity values for the word “electromagnetic” of 9, 3, 4.5, 0.3 and 0.7 are calculated for five different defined-field libraries, the selectivity value assigned that word would be 9. As indicated above, the selectivity value actually assigned to a term may be some function of the numerical-occurrence selectivity value, e.g., a root function.

As can be appreciated, and described further below, the selectivity value(s) of target-text terms can be calculated using a text database by (i) reading each of the N-library files to determine the frequency of occurrences of the term in each library, and (ii) using the ratio of occurrence in a selected library, with respect to one or more of the other libraries, to calculate selectivity values for that term for each library. At the same time, the text identifiers used in determining selectivity values are stored with the associated terms, for later use in text matching, as will be described. The use of a text database for determining selectivity values may be relatively intensive in terms of computational time, since all of the texts in all of the libraries must be “read” for the presence or absence of the term at issue.

By contrast, a word-records database allows for term selectivity values to be determined by accessing only the target-text terms of interest, i.e., non-generic words and, optionally, word groups, in the target text. This is done for individual target-text words by (i) accessing the word record for that word, (ii) recording the TIDs and LIDs in that word record, and (iii) using the identifiers to calculate one or more selectivity values, preferably one for each different-field library. It is done for target-text wordpairs, by (i) accessing the word records for all, e.g., two words in the word group, (ii) recording the TIDs, LIDs, and WPIDs in the two or more word records, and (iii) using the identifiers to calculate one or more selectivity values, preferably one for each different-field library. Details of the program operations for determining word and wordpair selectivity values from both text and word-records databases are given below.

With the target-text descriptive terms so identified, the program then uses TIDs identified in the selectivity value calculations, or looked up from word-records in a word-records database, to find sample, e.g., library texts having the highest term-overlap with the descriptive terms in the target texts. The purpose of this operation is to identify those texts in a large collection of digitally encoded texts that most closely match the target text in content. The rationale of the search method is based on two strategies for extracting content from natural-language texts, in accordance with the invention: First, the search uses selectivity values to identify those terms, i.e., words and optionally, word groups, having the most pertinence to the meaning of the input text, that is, terms that are richest in field-specific content. Second, the search considers all high selectivity value terms collectively, and preferably weighted according to selectivity value, to determine an optimal overlap in content-rich terms. This overlap is expressed as a match score. By considering all of the content-rich search terms as a whole, the program finds the highest possible match scores, e.g., global maximum word and wordpair overlap.

As just noted, the match score preferably reflects the relative “content” value of the different search terms, as measured by the selectivity values of the matched terms. The actual-occurrence selectivity values may present too great an extreme in values, in that high-value terms may dominate the match scores. For this reason, the actual selectivity values assigned to the target-text terms are preferably “softened” by a root function or geometric function. As will be seen in Example 1 below, a preferred root function is between 2, the square root and 3, the cube root of the calculated occurrence value.

The text-matching operation is illustrated in overview in FIG. 4, showing the input target-text descriptive terms from files 56, 64 being used to find texts containing at least one target-text term, indicated at 66, and ranking these texts to identify the sample texts with the highest match scores, as at 68.

Once the top-matching texts are identified, the classifications associated with those texts are recorded, as at 70. These classifications are then manipulated, as described below, to determine one of more classifications for the target text, as indicated at 72.

C. Text Processing

There are two related text-processing operations employed in the system. The first is used in processing each text in one of the N defined-field libraries into a list of words and, optionally, wordpairs that are contained in or derivable from that text. The second is used to process a target text into meaningful search terms, that is, descriptive words, and optionally, wordpairs. Both text-processing operations use the module whose operation is shown in FIG. 5. The text input is indicated generically as a natural language text 75 in FIG. 5.

The first step in the text processing module of the program is to “read” the text for punctuation and other syntactic clues that can be used to parse the text into smaller units, e.g., single sentences, phrases, and more generally, word strings. These steps are represented by parsing function 76 in the module. The design of and steps for the parsing function will be appreciated form the following description of its operation.

For example, if the text is a multi-sentence paragraph, the parsing function will first look for sentence periods. A sentence period should be followed by at least one space, followed by a word that begins with a capital letter, indicating the beginning of a the next sentence, or should end the text, if the final sentence in the text. Periods used in abbreviations can be distinguished either from an internal database of common abbreviations and/or by a lack of a capital letter in the word following the abbreviation.

Where the text is a patent claim, the preamble of the claim can be separated from the claim elements by a transition word “comprising” or “consisting” or variants thereof. Individual elements or phrases may be distinguished by semi-colons and/or new paragraph markers, and/or element numbers of letters, e.g., 1, 2, 3, or i, ii, iii, or a, b, c.

Where the texts being processed are library texts, and are being processed for constructing a word-records database, the sentences, and non-generic words (discussed below) in each sentence are numbered, so that each non-generic word in a text is uniquely identified by an a TID, an LID, CID, a TID, and one or more word-position identifiers (WPIDs).

In addition to punctuation clues, the parsing algorithm may also use word clues. For example, by parsing at prepositions other than “of”, or at transition words, useful word strings can be generated. As will be appreciated below, the parsing algorithm need not be too strict, or particularly complicated, since the purpose is simply to parse a long string of words (the original text) into a series of shorter ones that encompass logical word groups.

After the initial parsing, the program carries out word classification functions, indicated at 78, which operate to classify the words in the text into one of three groups: (i) generic words, (ii) verb and verb-root words, and (iii) remaining groups, i.e., words other than those in groups (i) or (ii), the latter group being heavily represented by non-generic nouns and adjectives.

Generic words are identified from a dictionary 80 of generic words, which include articles, prepositions, conjunctions, and pronouns as well as many noun or verb words that are so generic as to have little or no meaning in terms of describing a particular invention, idea, or event. For example, in the patent or engineering field, the words “device,” “method,” “apparatus,” “member,” “system,” “means,” “identify,” “correspond,” or “produce” would be considered generic, since the words could apply to inventions or ideas in virtually any field. In operation, the program tests each word in the text against those in dictionary 80, removing those generic words found in the database.

As will be appreciated below, “generic” words that are not identified as such at this stage can be eliminated at a later stage, on the basis of a low selectivity value. Similarly, text words in the database of descriptive words that have a maximum value at of below some given threshold value, e.g., 1.25 or 1.5, could be added to the dictionary of generic words (and removed from the database of descriptive words).

A verb-root word is similarly identified from a dictionary 82 of verbs and verb-root words. This dictionary contains, for each different verb, the various forms in which that verb may appear, e.g., present tense singular and plural, past tense singular and plural, past participle, infinitive, gerund, adverb, and noun, adjectival or adverbial forms of verb-root words, such as announcement (announce), intention (intend), operation (operate), operable (operate), and the like. With this database, every form of a word having a verb root can be identified and associated with the main root, for example, the infinitive form (present tense singular) of the verb. The verb-root words included in the dictionary are readily assembled from the texts in a library of texts, or from common lists of verbs, building up the list of verb roots with additional texts until substantially all verb-root words have been identified. The size of the verb dictionary for technical abstracts will typically be between 500–1,500 words, depending on the verb frequency that is selected for inclusion in the dictionary. Once assembled, the verb dictionary may be culled to remove words in generic verb words, so that words in a text are classified either as generic or verb-root, but not both.

In addition, the verb dictionary may include synonyms, typically verb-root synonyms, for some or all of the entries in the dictionary. The synonyms may be selected from a standard synonyms dictionary, or may be assembled based on the particular subject matter being classified. For example, in patent/technical areas, verb meanings may be grouped according to function in one or more of the specific technical fields in which the words tend to appear. As an example, the following synonym entries are based a general action and subgrouped according to the object of that action:

-   -   create/generate,         -   assemble, build, produce, create, gather, collect, make,         -   generate, create, propagate,         -   build, assemble, construct, manufacture, fabricate, design,             erect,             -   prefabricate,             -   produce, create,         -   replicate, transcribe, reproduce, clone, reproduce,             propagate, yield, produce, create,         -   synthesize, make, yield, prepare, translate, form,             polymerize,     -   join/attach,         -   attach, link, join, connect, append, couple, associate, add,             sum, concatenate, insert,         -   attach, affix, bond, connect, adjoin, adhere, append,             cement, clamp, pin,         -   rivet, sew,             -   solder, weld, tether, thread, unify, fasten, fuse,                 gather, glue, integrate,             -   interconnect, link, add, hold, secure, insert, unite,                 link, support, hang, hinge, hold,             -   immobilize, interconnect, interlace, interlock,                 interpolate, mount, support),         -   derivatize, couple, join, attach, append, bond, connect,             concatenate, add, link, tether,             -   anchor, insert, unite, polymerize, couple, join, grip,                 splice, insert, graft, implant, ligate, polymerize,                 attach

Where verb synonyms are employed, the verb-root verb is identified by a verb identifier VID which identifies the one or verb synonyms classes to which that verb belongs.

The words remaining after identifying generic and verb-root words are for the most part non-generic noun and adjectives or adjectival words. These words form a third general class of words in a processed text. A dictionary of synonyms may be supplied here as well, or synonyms may be assigned to certain words on as as-needed basis, i.e., during classification operations, and stored in a dictionary for use during text processing.

The parsing and word classification operations above produce distilled sentences, as at 84, corresponding to text sentences from which generic words have been removed. The distilled sentences may include parsing codes that indicate how the distilled sentences will be further parsed into smaller word strings, based on preposition or other generic-word clues used in the original operation. As an example of the above text parsing and word-classification operations, consider the processing of the following patent-claim text into phrases (separate paragraphs), and the classification of the text words into generic words (normal font), verb-root words (italics) and remainder words (bold type).

A device for monitoring heart rhythms, comprising:

-   -   means for storing digitized electrogram segments including         signals indicative of depolarizations of a chamber or chamber of         a patient's heart;     -   means for transforming the digitized signals into signal wavelet         coefficients;     -   means for identifying higher amplitude ones of the signal         wavelet coefficients; and     -   means for generating a match metric corresponding to the higher         amplitude ones of the signal wavelet coefficients and a         corresponding set of template wavelet coefficients derived from         signals indicative of a heart depolarization of known type, and     -   identifying the heart rhythms in response to the match metric.

The parsed phrases may be further parsed at all prepositions other than “of”. When this is done, and generic words are removed, the program generates the following strings of non-generic verb and noun words.

monitoring heart rhythms

storing digitized electrogram segments

signals depolarizations chamber patient's heart

transforming digitized signals

signal wavelet coefficients

amplitude signal wavelet coefficients

match metric

amplitude signal wavelet coefficients

template wavelet coefficients//

signals heart depolarization

heart rhythms

match metric.

The operation for generating words strings of non-generic words is indicated at 86 in FIG. 5, and generally includes the above steps of removing generic words, and parsing the remaining text at natural punctuation or other syntactic cues, and/or at certain transition words, such as prepositions other than “of.”

The word strings may be used to generate word groups, typically pairs of proximately arranged words. This may be done, for example, by constructing every permutation of two words contained in each string. One suitable approach that limits the total number of pairs generated is a moving window algorithm, applied separately to each word string, and indicated at 88 in the figure. The overall rules governing the algorithm, for a moving “three-word” window, are as follows:

1. consider the first word(s) in a string. If the string contains only one word, no pair is generated;

2. if the string contains only two words, a single two-wordpair is formed;

3. If the string contains only three words, form the three permutations of wordpairs, i.e., first and second word, first and third word, and second and third word;

4. if the string contains more than three words, treat the first three words as a three-word string to generate three two-words pairs; then move the window to the right by one word, and treat the three words now in the window (words 2–4 in the string) as the next three-word string, generating two additional wordpairs (the wordpair formed by the second and third words in preceding group will be he same as the first two words in the present group) string;

5. continue to move the window along the string, one word at a time, until he end of the word string is reached.

For example, when this algorithm is applied to the word string: store digitize electrogram segment, it generates the wordpairs: store-digitize, store-lectrogram, digitize-electrogram, digitize-segment, electrogram-segment, where the verb-root words are expressed in their singular, present-tense form and all nouns are in the singular. The non-generic word

Where the text-processing module is used to process an input (target) text, the non-generic words and wordpairs generated as above are stored at 50, 52.

Where the text-processing module is used to generate a text database of processed texts, as described below with reference to FIG. 6, the module generates, for each text a record that includes non-generic words and, optionally, word groups derived from the text, the text identifier, and associated library and classification identifiers.

Where the text-processing module is used to create word files in a word file database, as described below with reference to FIGS. 7A and 7B, the module operates to record word-position identifiers for each word in a text. Each word record will then be constructed to include, for each text containing that word, the TID, associated LIDs and CIDs, and the one or more WPIDs that identify the position(s) of that word in the corresponding text.

D. Generating Text and Word-Records Databases

The database in the system of the invention contains text and identifier information used for one or more of (i) determining selectivity values of text terms, (ii) identifying texts with highest target-text match scores, and (iii) determining target-text classification. Typically, the database is also used in identifying target-text word groups present in the database texts.

The texts in the database that are used for steps (ii) and (iii), that is, the texts against which the target text is compared, are called “sample texts.” The texts that are used in determining selectivity values of target terms are referred to as “library texts,” since the selectivity values are calculated using texts from two or more different libraries. In the usual case, the sample texts are the same as the library texts. Although less desirable, it is nonetheless possible in practicing the invention to calculate selectivity values from a collection of library texts, and apply these values to corresponding terms present in the sample texts, for purposes of identifying highest-matching texts and classifications. It will be assumed herein that sample texts are library texts, or primarily library texts with some added sample texts, e.g., newly added texts.

The texts used in constructing the database typically include, at a minimum, a natural-language text that describes or summarizes the subject matter of the text, a text identifier, a library identifier (where the database is used in determining term selectivity values), and a classification identifier that identifies a pre-assigned classification of that subject matter. Below are considered some types of libraries of texts suitable for databases in the invention, in making the following types of document classification:

Patent classification. The texts for this database include libraries of different-field patent texts, where the classification identifier includes at least one patent class and, optionally, at least one patent subclass. For example, the libraries used in the construction of the database employed in Examples 1 And 2 are made up of texts from a US patent bibliographic databases containing information about selected-filed US patents, including an abstract patent, issued between 1976 and 2000. This patent-abstract database can be viewed as a collection of libraries, each of which contains text from a particular, field. In the method described in the examples, the patent database was used to assemble six different-field libraries containing abstracts from the following U.S. patent classes (identified by CID);

I. Chemistry, classes 8, 23, 34, 55, 95, 96, 122, 156, 159, 196, 201, 202, 203, 204, 205, 208, 210, 261, 376, 419, 422, 423, 429, 430, 502, 516;

II. Surgery, classes, 128, 351, 378, 433, 600, 601, 602, 604, 606, 623;

III. Non-surgery life science, classes 47, 424, 435, 436, 504, 514, 800, 930;

IV. Electricity classes, 60, 136, 174, 191, 200, 218, 307, 313, 314, 315, 318, 320, 322, 323, 324, 335, 337, 338, 361, 363, 388, 392, 439;

V. Electronics/communication, classes 178, 257, 310, 326, 327, 329, 330, 331, 322, 333, 334, 336, 340, 341, 342, 343, 348, 367, 370, 375, 377, 379, 380, 381, 385, 386, 438, 455, and

VI. Computers/software, classes. 345, 360, 365, 369, 382, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 716, 717, 725.

Grant Proposal Classification. The texts used for constructing this database include large numbers of grant proposals, e.g., grant proposals from earlier submission periods, classified according to subject mater or according to internal work-study units used in evaluating grants in different areas. The libraries of texts might include a separate library for each separate classification, or multiple classifications within a single library, as is the case for the patent libraries above. The texts themselves are preferably grant summaries of the subject matter and purpose of submitted proposal.

Legal cases classification. It is desirable, when publishing appellate cases or other legal document, to classify the case according to the legal principles or categories that are dominant in any particular case. In particular, it is desirable to identify from the head notes of a case, the particular area of legal classification of a case, e.g., the legal doctrine of principles held in that case. Here the texts used in constructing the database are head notes or case summaries, the different libraries are general legal areas, e.g., torts, real property, criminal law, etc, and the classification is the legal principle or holding brought out in the case.

Classification of technical publication. In many technical or scientific fields, publications in the field are assembled for reference purposes in abstract compendia, such as Biological Abstracts, Chemical Abstracts, and the like. Typically, these are arranged or at least indicated by subject matter, which represent classifications into one or more of several specialities within a field. Here the texts used for database construction are abstracts of the publications, and the libraries are either the different specialities in the filed corresponding to the different classifications within the field, or collections of related classifications within the field. The method of the invention can also use this type of database for directing new publication submissions to the proper editorial group for review.

The basic program operations used in generating a text database of processed texts is illustrated in FIG. 6. The program processes some large number L of texts, e.g., 5,000 to 500–000 texts from each of N libraries. In the flow diagram, “T” represents a text number, beginning with the first text in the first library and ending with the Lth processed text in the Nth library. The text number T is initialized at 1 (box 89), the library number I at 1 (box 90), and text T is then retrieved from the collection of library texts 32 (box 91). That text is then processed at 34, as above, to yield a list of non-generic words and wordpairs. To this list is added the text identifier and associated library and classification identifiers. This processing is repeated for all texts in library I, through the logic of 95 and 97, to generate a complete text file for library I. All of the texts in each successive library are then processed similarly, though the logic of 99, 101, to generate N text files in the database.

Although not shown here, the program operations for generating a text database may additionally include steps for calculating selectivity values for all words, and optionally wordpairs in the database files, where one or more selectivity values are assigned to each word, and optionally wordpair in the processed database texts.

FIGS. 7A and 7B are flow diagrams of program operation for generating a word-records database from the texts 32 in N different-field libraries. The program is initialized to text T=1, at 92, but does not need to keep track of which library I the text is contained in. The program gets text T, at 94, then records the text identifier and associated library and classification identifiers at 96. Text T is then processed at 34, as above, to yield a file of non-generic words, each having one or more associated word-position identifiers at 100. The words and their WPIDs from 100, and the text identifiers from 96 are then combined at 104 to produce a complete word record for each word in text T. These text-specific word records are then placed into a words record database 30B, as will be now be described with reference to FIG. 7B.

The operations shown in FIG. 7B are carried out successively for each text, using the words and associated identifiers in text T generated at 105 in FIG. 7A. As seen, the program initializes to the first text word (w=1, box 92) and selects that word from file 105 (box 110). The word is tested against existing word records to see if a record from that word already exists, as at 112. If no word record currently exists for that word, the program creates a new word record, at 114, and adds the associated text (TID, LID, and CID) and word-position (WPID) identifiers from that text to that new record. If a word record for the word being tested already exits, the program makes a new entry in the existing word record of the text and word-position identifiers for that text, as at 116. The new or updated, existing record becomes part of the growing database of word records, indicated at 30B. This process is repeated for each non-generic word in text T, though the logic of 120 and 122.

When all texts in all N libraries have been so processed, the database contains a separate word record for each non-generic word found in at least one of the texts, and for each word, a list of TIDs, CIDs, and LIDs identifying the text(s) and associated classes and libraries containing that word, and for each TID, associated WPIDs identifying the word position(s) of that word in a given text.

FIG. 8 shows a pair of word records, identified as “word-x” and “word-y,” in a word record 30B constructed in accordance with the invention. Associated with each word is the word's verb identifier (VID), identifying a synonym class for the verb or verb-root words, and a plurality (N) of numbers that represent the selectivity values (SV_(N)) of that word in each of a plurality (N) of text libraries, as discussed further below. Listed with each word (in separate columns or fields) are one or more TIDs identifying each of the texts containing that word, and, with each text, the LID and CID, identifying the text library containing that text and text classification. Also associated with each text, (in separate fields or columns) are one or more WPIDs identifying the word position of that word in that text.

E. Determining Selectivity Values.

The present invention is intended to provide a separate selectivity value for each of the two or more different text libraries that are utilized, that is, text libraries representing texts from two or more different fields or with different classifications. The selectivity value that is then used for text searching, as a prelude to text classification, may be the selectivity value representing one of the two or more preselected libraries of text, that is, libraries representing one or more preselected fields.

More typically, however, the selectivity value that is utilized for a given word or wordpair is the highest selectivity value determined for all of the libraries. It will be recalled that the selectivity value of a term indicates its relative importance in texts in one field, with respect to one or more other fields, that is, the term is descriptive in at least one field. By taking the highest selectivity value for any term, the program is in essence selecting a term as “descriptive” of text subject matter if is descriptive in any of the different text libraries (fields) used to generate the selectivity values. It is useful to select the highest calculated selectivity value for a term (or a numerical average of the highest values) in order not to bias the program search results toward any of the several libraries of texts that are being searched. However, once an initial classification has been performed, it may be of value to refine the classification procedure using the selectivity values only for that library containing texts with the initial classification.

As noted above, the selectivity values of terms, particularly words, may be precalculated and stored in appropriate files within a text or word record database. A large text or word-records database may contain between 10–100K separate words, so precalculating these selectivity values may be practical; but precalculating wordpair values for up to 100K² wordpairs may not be. In any case, as will be seen, some of the computational operations performed in calculating selectivity values are also utilized in subsequent text matching operations employed in identifying texts with the highest score overlap with the target text. Therefore, calculating selectivity values de novo during a classification procedure, particularly word-group selectivity values, may require very little extra computational time.

FIG. 9 is a flow diagram of steps executed in calculating selectivity values using a text database. In particular, the steps in this flow diagram are intended to (i) examine each of the non-generic words and wordpairs extracted from a target text (files 50, 52), (ii) calculate selectivity values for each of the terms, (iii) classify that term as a descriptive term if at least one of its selectivity values is above a selected threshold (which may be different for words and wordpairs), and (iv) store all of the TIDs and associated CIDs accumulated in the calculations for the descriptive terms.

The program is initialized at term value t=1 (box 126), meaning the first term in the list of target-text non-generic words and wordpairs (files 50, 52). The program then searches all the texts in each of the N text files, recording the text TIDs and associated LIDs and CIDs for each text containing that term, as indicated at 132. Initializing to library I=1 (box 130), the associated selectivity value O_(t)/O _(t), for that term is then calculated at 136 as the frequency of occurrence of that term in library I (O_(t)) divided by the frequency of occurrence of the same term in all other libraries I (O _(t)). The frequency of occurrence O_(t) or O _(t) of a term in a library or group of libraries is calculated either as the total number of texts containing a term divided by the total size of the library or libraries interrogated, or as the frequency of term in a library up to some preselected number of texts, e.g., 50K texts. As an example of the first approach, assume there are 125 texts containing that term out of a total of 100,000 texts in library I, and 150 texts containing that term in all other libraries, out of a total of 500,000 texts in all I libraries. The frequency of occurrence of the term in library I is thus 125/100,000 and in libraries I, 150/500,000. The selectivity value calculated would then be 4.16. Although not shown here, the program may increment a zero value of O _(t) to one or some other small number, to maintain the selectivity value as a finite number.

The selectivity value is similarly calculated for each additional library, through the logic of 140, 142, until all N-library the selectivity values for term t are calculated. Once this process is complete, the selectivity values SVs for term t (actual calculated SVs or some function, e.g., root function, thereof), all TIDs containing that term, and associated CIDs are stored at 148. The program examines all N selectivity values at box 144 to determine whether at least one of the values is above a given threshold selectivity value x, e.g., a value between 1.5 and 3. If negative, the program ignores that term, and proceeds to the next term, through the logic of 144, 150, and 152. If positive, the program stores the term, its SVs, text identifiers containing that term, and associated CIDs at file 154. This process is repeated for each target-text term, though the logic of 150, 152. When all terms have been processed, the program contains file 154 of descriptive terms (words and word groups), and for each descriptive term, associated SVs, text identifiers for each text containing that term, and associated CIDs for the texts.

Where the system employs a words-record database, the operations involved in calculating word selectivity values are somewhat different from those used in calculating wordpair selectivity values, and these will be described separately with respect to FIG. 10 and FIGS. 11 and 12, respectively. Looking first at FIG. 10, the program is initialized at 156 to the first target text word w, and this word is retrieved at 158 from a file 50 containing non-generic target text words. The program looks up the word record for this word in database 30B and records all TIDs in that word record, and associated LIDs and CIDs for each TID. To calculate the selectivity value for each of the N libraries, the program initializes to I=1 at 162, and counts all TIDs whose LID corresponds to I=1 and all TIDs whose LIDs correspond to all other libraries. From these numbers, and knowing the total number of texts in each libraries, the occurrence of word w in libraries I and I, respectively (O_(w) and O _(w)) is determined, and the selectivity value calculated as O_(w)/O _(w) as indicated at 164. This calculation is repeated for each library, through the logic of 166, 168, until all N selectivity values are calculated. These values (calculated values or some function, e.g., root function, thereof) are then stored in file 172, along with the TIDs containing word w and the associated CIDs.

The program now examines the selectivity values (box 170) to determine whether at least one of the values is above a given threshold selectivity value. If negative, the program ignores that word, and proceeds to the next word, through the logic of 173, 174. If positive, the program stores the word, its SVs, text identifiers containing that word, and associated CIDs in a file 175 of descriptive words. (Alternatively, CIDs may be retrieved later, if the database includes links between TIDs and CIDs). This process is repeated for each target-text word, through the logic of 173, 174. When all terms have been processed, the program contains a file 175 of each descriptive target-text word, and for each word, associated SVs, text identifiers for each text containing that word, and associated CIDs for the texts.

As noted above, each word, and particular word verb and verb-root words, may be assigned to one or more synonym groups during processing of a target text. This expansion of target-text words to include synonyms is handled, in the above-described program operations, by substituting for a single target text word, each of a group of synonyms that include that word. Thus, when a program operation applies to a “word”, it will be repeated for each synonym represented by that word. Typically, the selectivity value assigned to a synonym-generated word is the same as that assigned to the underlying target-text word of wordpair, respectively. Thus, although synonyms may not change the selectivity values of words, they will tend to expand the range of TIDs containing a descriptive “word,” in effect, broadening the reach of the text search described in the next section to include many more text candidates.

The program operations for calculating wordpair selectivity values are shown in FIGS. 11 and 12. As seen in FIG. 11, the wordpairs are initialized to 1 (box 176) and the first wordpair is selected from file 52, as at 177. The program accesses word-records database 30B to identify and record all TIDs containing each word in the wordpair, and for each TID, associated WPIDs and LIDs. The TIDs associated with each word in a word pair are then compared at 179 to identify all TIDs containing both words. For each of these “common-word” texts T, the WPIDs for that text from file 180 are compared to determine the word distance between the words in the word pair in that text. Thus, for example, if the two words in a wordpair in text T have WPIDs “2–4” and “2–6” (identifying word positions corresponding to distilled sentence 2, words 4 and 6), the text would be identified as one having that wordpair. Conversely, if no pair of WPIDs in a text T corresponded to adjacent words, the text would be ignored.

If a wordpair is present in a given text (box 182), the wordpair is stored in file 184 with its TID and associated LID and CID. This process is repeated, through the logic of 186, 188, until all texts T containing both words of a given wordpair are interrogated for the presence of the wordpair. Thus, file 184 contains, for each wordpair, an accumulating file of TIDs containing that wordpair, and the associated LIDs and CIDs. This process is repeated, through the logic of 190, 192, until all non-generic target-text wordpairs have been considered.

The program operation to determine the selectivity value of each wordpair is similar to that used in calculating word selectivity values. With reference to FIG. 12, the wordpair value “wp” is initialized at 1 (box 194), and the first wp, with its recorded TIDs and LIDs, is retrieved from file 184 (box 196). To calculate the selectivity value for each of the N libraries, the program initializes to I=1 at 198, and counts all TIDs whose LID corresponds to I=1 and all TIDs whose LIDs correspond to all other libraries. From these numbers, and knowing the total number of texts in each libraries, the occurrence of wordpair wp in libraries I and I, respectively (O_(wp) and O _(wp)) is determined, and the selectivity value calculated as O_(wp)/O _(wp) as indicated at 202. This calculation is repeated for each library, through the logic of 203, 204, until all N selectivity values are calculated. These values (calculated values or some function, e.g., root function, thereof) are then stored in file 206, along with the TIDs containing wordpair wp and the associated CIDs.

The program now examines the selectivity values (box 208) to determine whether at least one of the values is above a given threshold selectivity value. If negative, the program ignores that word, and proceeds to the next word, through the logic of 213,214. If positive, the program stores the wordpair, its SVs, text identifiers containing that word, and associated CIDs in a file 216 of descriptive wordpairs. This process is repeated for each target-text wordpair, through the logic of 213, 214. When all terms have been processed, the program contains a file 216 of each descriptive target-text wordpair, and for each wordpair, associated SVs, text identifiers for each text containing that wordpair, and associated CIDs for the texts.

F. Text Searching

The next general operation in the classification method employs the descriptive search terms generated as above, and the TIDs associated with the descriptive terms, to identify sample texts, e.g., library texts, which have the greatest term overlap with the target text, and preferably the greatest weighted term overlap, meaning the “match value” assigned to each term is weighted by its selectivity value. The text-searching operation is substantially independent of the whether a text or word-record database is employed, since both text and word-records databases yield a file of target-text descriptive words, associated SVs, a list of TIDs containing each target-text descriptive term, and associated CIDs. This file is indicated in FIG. 13 as file 154 of descriptive terms generated using a text database, or its equivalent, files 175 and 216 of descriptive words and wordpairs, respectively, generated using a word-records database.

In a text-searching operation, the program is initialized to descriptive term dt=1 (box 220), and this term is retrieved from the descriptive term file (file 154, file 175, or combined files 175, 216). The program then records all of the TIDs having that term, and the associated selectivity value for that term (box 224). The program may also record and store the CID for each TID.

In the next operation, the program accumulates the match values for all TIDs on an ongoing basis, as indicated at 226, and described now with reference to FIG. 14. With each new descriptive term dt, the list of matching TIDs and associated match value are placed in a file 236 which serves as an updated list of all TIDs and selectivity values associated with the descriptive terms in that TID text. Each new descriptive term generates a new list of TIDs and an associated selectivity value, indicated at 224 in FIGS. 13 and 14. Setting the text TID at count=1 (box 241), each TID in list 224 is compared with the TIDs from file 236, as at 238. If the TID from file 224 being compared already exists in file 236 (box 240), the selectivity value of the new descriptive term is added to that existing TID, as at 244. If the TID being compared does not already exist in list 224, the new TID, along with the descriptive-term selectivity value (and optionally, the CID) is added to the list, as indicated at 236. This process is repeated, through the logic of 246, 248, until each TID containing the descriptive word under consideration has been so processed. Thus, for each new descriptive term, the corresponding selectivity value for all texts containing that term is either added to an already existing TID record or placed in a new TID record. The accumulating match scores for all TIDs are placed in file 226.

Once this processing is complete for a given descriptive word, and with reference again to FIG. 13, the program then considers the next dt, through the logic of 228, 230, until all of the descriptive terms generated from the target text have been considered. With each new descriptive term, all of the TIDs associated with that term, and the respective selectivity values are placed in file 236. When the last term has been processed, each TID in the file has associated with it, a selectivity value for each of the descriptive terms found in that text. A total match score for each TID can thus be calculated by summing the selectivity values associated with each TID. These final scores are then ranked, using a standard number-ranking algorithm (box 232), and the top-ranked texts, e.g., texts with the top 25, 50, or 100 match scores, are then outputted at 233.

G. Text Classification

This section describes a classification algorithm for determining classification from the top-ranked search texts and their associated CIDs obtained through the search routine discussed in the section above. The method is illustrated for patent classification into classification categories defined by the USPTO classification system. It will be appreciated, however, that method is applicable to classifying a variety a variety of target texts, as indicated above, requiring only that the sample texts giving the highest match score associated CIDs.

The program accesses file 233 from FIG. 13, containing the TIDs of the n top-ranked matched texts, the match scores for each text, and the associated CIDs (in this case, class and subclass CIDs) for each text. The program records the class CIDs for each of the top ranked texts, at 234, and accumulates a weighted score for all classes. That is, the program weights each of the class CIDs from the top n hits by the match score for the corresponding text, and sums the weighted-class CID values for all n texts. The top classification scores, e.g., top 3 class score, are then selected, as at 238.

For each of the classes selected at 238, the program accesses file 233 to record the subclass CIDs for that class, e.g., each of the top three classes. The program now accumulates the weighted scores for the subclasses in each of these classes, as above, by weighting each subclass CID within a class by the match score for the corresponding text for the top n hits, and summing the weighted subclass CID values for all n texts in that class. This operation is indicated at 242. The top subclass scores, e.g., up to four subclasses per class, are then selected, as at 243.

From these weighted class and subclass scores, the program generates a n×m, e.g., 3×4, confidence matrix of each of the n classes and each of the up to m subclasses in each class. The matrix values are proportionated so that the sum of the n class scores=1 and the sum of the subclass scores for each class is equal to the proportionated class value. Thus, the total of all of the matrix scores is equal to one.

As an example, applying the method of the invention to U.S. Pat. No. 6,143,676, the above scoring method gave the following class and subclass scores:

Class 419, score=837.188, subclasses 68,42,38,54

Class 264, score=317.347, subclasses 102 629 59 65

Class 75, score=146.767, subclasses 229, 232

Class scores(%) Confidence matrix

0.643347 0.37022 0.0916637 0.0916637 0.08979987 0.243869 0.0649329 0.0644895 0.057649 0.0563922 0.112784 0.0563922 0.0563922

This matrix indicates that class 419, subclass 68 is determined with a confidence factor of 0.37022, class 264, subclass 347, with a confidence factor of 0.0649329, and so forth.

The program uses the matrix to calculate the top classifications (best confidence values), for example, the top three class and subclass CIDs for a given target.

Examples 1 and 2 below provided details of the method applied to a large group of US patents. Each patent includes, as part of its bibliographic information, the PTO office classification, given by class and subclass, and one or more, and typically several cross classes and subclasses which were also searched or considered pertinent classifications by the patent examiner in charge of prosecution of the patent. The target text used in each case was the abstract for that patent. The library texts searched was a text database of U.S. patents issued between 1976 and 2000, grouped into the six different-technology libraries indicated above.

EXAMPLE 1 Text Classification Parameters

Initially, 30 of the 164 patents were selected at random to determine preferred root function and optimal value of n, the number of top-ranked texts considered for classification. The results are shown in FIGS. 16A and 16B, respectively. Both of these figures contain three sets of four bars. In each set, the first bar represents the percentage of first-choice (top) classifications that are identical to the PTO office classes (light shading), or are identical to one of the PTO cross classes (heavy shading). The second and third bars represent the percentage of second- and third-choice classifications, respectively, that are identical to the PTO office classes (light shading), or are identical to one of the PTO cross classes (heavy shading). The fourth bar represents the percentage of op-three choices that do not correspond to either an office class or subclass. As seen in FIG. 16A, the best classification results are obtained using a selectivity value root function of 2.5. As seen in FIG. 16B, the best classification results (using a selectivity value root function of 2.5) are achieved by considering the top 20 match-score texts only.

EXAMPLE 2 Classification of 164 Patents

The method was expanded to classify all 164 patents, using the optimal 2.5 root function and n=20 values from above, with the results shown in FIG. 17A, for classification of patent class only and in FIG. 17B, for classification of patent class and subclass. The four bars in each figure represent the same percentage matches as described above for FIGS. 16A and 16B.

As seen in FIG. 17A, the top classification determination accurately placed about 83% of the 164 patents in the PTO-assigned office class, and more than 90% in either a PTO-assigned office or cross class. The second choice picked up 12% correct class and about 17% correct office class and subclass, and the third choice, about 8% correct office or cross class. The top three choices failed to identify a PTO-assigned office or cross class in only six of the patents, i.e., in about 4% of the cases.

Similar results were obtained for classification determination for both class and subclass, as seen in FIG. 17B. Although the percent correct determination were slightly lower for both class and subclass, the program nonetheless correctly identified the PTO-assigned office classification in over 70% of the cases (first bar), and picked up another 19–20% of correct office classifications in the combined second and third choices. For only six patents (the same six patents as those in FIG. 17A) did the top three choices fail to identify a PTO-assigned office class and subclass or cross class and subclass.

From the foregoing, it will be appreciated how various objects and features of the invention are met. The system is capable of processing text in a completely automated fashion, i.e., without user intervention or guidance, to process a text into key (descriptive) words and word groups, for purposes of text-match searching and text classification. In particular, no pre-classification decision is required, nor does the user even need to read or understand of the input text in order to perform an effective search. In fact, the program function can be duplicated for virtually any natural language for which suitable libraries of texts exist, without the user having any knowledge of the language structure or vocabulary.

Particularly where the system employs a word records database as described herein, total processing time can be reduced to a few minutes or less. The output of the classification process can also include information, i.e., texts, from the top-ranking text matches, thus allowing the user to locate documents most closely related to the target text as part of the classification process.

Finally, the invention is applicable to a wide variety of text classification tasks, as indicated herein, the only requirements being (i) a source of selectivity values for words, and optionally, word groups derived from a text to be classified (the target text), and (ii) sample texts which contain representative numbers of texts in each of two or more classifications which one wishes to assigned to the target text.

Although the invention has been described with respect to particular features and embodiments, it will be appreciated that various modifications and changes may be made without departing from the spirit of the invention. 

1. A computer-executed method for classifying a target document in the form of a digitally encoded natural-language text into one or more of two or more different classes, comprising the steps of: (a) for each of a plurality of terms composed of non-generic words and, optionally, proximately arranged word groups in the target document, selecting a term as a descriptive term if the term has an above-threshold selectivity value in at least one library of texts in a field, where the selectivity value of the term in the library of texts in the field is related to the frequency of occurrence of that the term in said library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively, (b) determining for each of a plurality of sample texts, a match score related to the number of descriptive terms present in or derived from that the text that match those in the target document, where each of the plurality of sample texts has an associated classification identifier that identifies the one of more different classes to which that the text belongs, (c) selecting one or more of the sample texts having the highest match scores, (d) recording the one or more classification identifiers associated with the one or more sample texts having the highest match scores, and (e) associating the one or more classification identifiers from step (d) with the target document, thereby to classify the target document as belonging to one or more classes represented by at least one of the classification identifiers from step (d).
 2. The method of claim 1, wherein the sample texts are texts in the libraries of texts from which the selectivity values of target terms are determined.
 3. The method of claim 2, wherein said steps (a) and (b) each includes accessing a text database containing said libraries of texts, in processed or unprocessed form, where each text is associated with a text identifier, a library identifier, and a classification identifier.
 4. The method of claim 2, wherein said steps (a) and (b) each includes accessing a database of word records, where each record includes text identifiers of the library texts that contain the word, associated library and classification identifiers for each text, and optionally, one or more selectivity values associated with the word.
 5. The method of claim 4, wherein carrying out the step of selecting descriptive words in target text includes (i) accessing said database to identify at least one selectivity value associated with each non-generic target word, and (ii) selecting the word as the descriptive word if at least one of its selectivity values is above the threshold value.
 6. The method of claim 4, wherein carrying out the step of selecting descriptive word groups in a target text, includes (i) accessing the database to identify text and library identifiers for each non-generic word in the target text, (ii) using the identified text and library identifiers to calculate one or more selectivity values for that the word, and (iii) selecting the word as the descriptive word if at least one of the calculated selectivity values is above the threshold value.
 7. The method of claim 4, wherein carrying out the step of determining match scores includes (i) accessing the database, to identify library texts associated with each descriptive word in the target text, and (ii) from the identified texts recorded in step (i), determining text match score based on the number of descriptive words in that the text weighted by the selectivity values of the matching words.
 8. The method of claim 4, wherein said database further includes, for each word record, word-position identifiers, and carrying out the step of selecting a word group with an above-threshold selectivity value includes (i) accessing said database to identify texts and associated library and word-position identifiers associated with the word group, (ii) from the identified texts, library identifiers, and word-position identifiers recorded in step (i) determining one or more selectivity values for the word group, and (iii) identifying a wordpair as a descriptive word group if at least one of its selectivity values is above a selected threshold value.
 9. The method of claim 8, wherein carrying out the step of determining match scores includes (i) recording the texts associated with each descriptive word group, and (ii) determining a text match score based, at least in part, on number of descriptive word groups in the text, weighted by the selectivity values of such words groups.
 10. The method of claim 1, wherein the selectivity value associated with term in is related to the greatest selectivity value determined with respect to each of a plurality N>2 of libraries of texts in different fields.
 11. The method of claim 1, wherein the selectivity value assigned to the descriptive term is a root function of the frequency of occurrence of that the term in said library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively, and the match score is weighted by the selectivity values of the matching terms.
 12. The method of claim 11, wherein the root function is between 2, the square root function, and 3, the cube root function.
 13. The method of claim 4, wherein said database further includes, for each word record, word-position identifiers, and carrying out the step of selecting word group with the above-threshold selectivity value includes (i) accessing said database to identify texts and associated library and word-position identifiers associated with the word group, (ii) from the identified texts, library identifiers, and word-position identifiers recorded in step (i) determining one or more selectivity values for that the word group, and (iii) identifying a wordpair as descriptive word group if at least one of its selectivity values is above a selected threshold value.
 14. The method of claim 1, wherein each library of texts contains texts with multiple different classification identifiers.
 15. The method of claim 1, wherein said sample texts and corresponding classification identifiers are selected from the group consisting of: (a) libraries of different-field patent texts, and said classification identifier includes at least one patent class and, optionally, at least one patent subclass; (b) libraries of different-field research grant proposals or reports, and said classification identifier includes a research funding class within an agency; (c) libraries of case reports or head notes relating to different legal topics, and said classification identifier includes one or more different legal topics; and (d) libraries of different-field scientific or technical texts, and said classification identifier includes at least one of a plurality of different science or technology filed classifications.
 16. An automated system for classifying a target document in the form of a digitally encoded text as belonging to one or more of a plurality of different classes comprising (1) a computer, (2) accessible by said computer, a database of word records, where each record includes text identifiers of the library texts that contain the word, associated library and classification identifiers for each text, and optionally, one or more selectivity values for each word, where the selectivity value of a term in a library of texts in a field is related to the frequency of occurrence of the term in said library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively, (3) a computer readable code which is operable, under the control of said computer, to perform the steps of (a) for each of a plurality of terms composed of non-generic words and, optionally, proximately arranged word groups characterizing the target document, selecting the term as a descriptive term if the term has an above-threshold selectivity value in at least one library of texts in a field, by (i) accessing said database and (ii) calculating or recording from the database, the selectivity value associated with the term, (b) determining for each of the plurality of library texts, a match score related to the number of descriptive terms present in or derived from the text that match those in the target document, (c) selecting one or more of the library texts having the highest match scores, (d) recording the one or more classification identifiers associated with the one or more library texts having the highest match scores, and (e) associating the one or more classification identifiers from step (d) with the target document, thereby to classify the target document as belonging to at least class represented by the classification identifiers from step (d).
 17. The system of claim 16, wherein said code is operable, in carrying out the step of selecting descriptive word in a target text, to (i) access the database to identify text and library identifiers for each non-generic word in the target text, (ii) use the identified text and library identifiers to calculate one or more selectivity values for that the word, and (iii) select the word as the descriptive word if at least one of the selectivity values is above the threshold value.
 18. The system of 16, wherein said code is operable, in carrying out the step of determining match scores, to (i) access the database, to identify library texts associated with each descriptive word in the target text, and (ii) from the identified texts recorded in step (i), determine text match score based on number of descriptive words in a text, weighted by the selectivity values of the matching words.
 19. The system of claim 16, wherein said database further includes, for each word record, word-position identifiers, and said code is operable, in carrying out the step of selecting the word group with the above-threshold selectivity value, to (i) access said database to identify texts and associated word-position identifiers associated with the word group, (ii) from the identified texts and word-position identifiers recorded in step (i) determine one or more selectivity values for the word group, and (iii) identify the word group as a descriptive wordpair if at least one of its selectivity valued is above the selected threshold value.
 20. The system of claim 19, wherein said code is operable, in carrying out the step of determining match scores, to (i) record the texts associated with each descriptive wordpair, and (ii) determine text match score based, at least in pad, on the number of descriptive word groups in the text, weighted by the selectivity values for such word groups.
 21. The system of claim 1, wherein said library texts and corresponding classification identifiers are selected from the group consisting of: (a) libraries of different-field patent texts, and said classification identifier includes at least one patent class and, optionally, at least one patent subclass; (b) libraries of different-field research grant proposals or reports, and said classification identifier includes a research funding class within the agency; (c) libraries of case reports or head notes relating to different legal topics, and said classification identifier includes one or more different legal topics; and (d) libraries of different-field scientific or technical texts, and said classification identifier includes at least one of a plurality of different science or technology filed classifications.
 22. Computer readable code for use with an electronic computer and a database word records in classifying a target document in the form of a digitally encoded text as belonging to one or more of a plurality of different classes, where each record in the word records database includes text identifiers of the library texts that contain the word, an associated library identifier for each text, an associated classification identifier for each text, and optionally, one or more selectivity values for each word, where the selectivity value of a term in a library of texts in a field is related to the frequency of occurrence of the term in said library, relative to the frequency of occurrence of the same term in one or more other libraries of texts in one or more other fields, respectively, said code being operable, under the control of said computer, to perform the steps of (a) for each of a plurality of terms composed of non-generic words and, optionally, proximately arranged word groups characterizing the target document, selecting the term as a descriptive term if the term has an above-threshold selectivity value in at least one library of texts in the field, by (i) accessing said database and (ii) calculating or recording from the database, the selectivity value associated with the term, (b) determining for each of the plurality of library texts, a match score related to the number of descriptive terms present in or derived from text that match those in the target document, (c) selecting one or more of the library texts having the highest match scores, (d) recording the one or more classification identifiers associated with the one or more library texts having the highest match scores, and (e) associating the one or more classification identifiers from step (d) with the target document, thereby to classify the target document as belonging to at least one class represented by the classification identifiers from step (d).
 23. The code of claim 22, which is operable, in carrying out the step of selecting descriptive word in a target text, to (i) access the database to identify text and library identifiers for each non-generic word in the target text, (ii) use the identified text and library identifiers to calculate one or more selectivity values for the word, and (iii) select a word as a descriptive word if at least one of the selectivity values is above threshold value.
 24. The code of claim 22, which is operable, in carrying out the step of determining match scores, to (i) access the database, to identify library texts associated with each descriptive word in the target text, and (ii) from the identified texts recorded in step (i), determine text match score based on number of descriptive words in a text, weighted by the selectivity values of the matching words.
 25. The code of claim 22, wherein said database further includes, for each word record, word-position identifiers, and said code is operable, in carrying out the step of selecting word group with above-threshold selectivity value, to (i) access said database to identify texts and associated word-position identifiers associated with the word group, (ii) from the identified texts and word-position identifiers recorded in step (i) determine one or more selectivity values for the word group, and (iii) identify the word group as a descriptive wordpair if at least one of the selectivity valued is above the selected threshold value.
 26. The code of claim 25, which is operable, in carrying out the step of determining match scores, to (i) record the texts associated with each descriptive wordpair, and (ii) determine text match score based, at least in part, on the number of descriptive word groups in a text, weighted by the selectivity values for such word groups. 